マルチプラットフォームで利用可能なOpenJDKのAmazon Correttoが発表されました!
しばらく前に、Amazon LinuxでのJavaのLTSが発表され大きな話題となりました。
Amazon LinuxでのJavaのLTS (Long-Term Support)提供について
「ほぇー、AWSもやりおるやんけ!!」と感慨にふけっていたら、それの100倍ぐらい衝撃的なニュースが、Javaの神様James Goslingのツイートで飛び込んできました。
Just announced #amazon #Corretto at #devoxx. It is our distribution of OpenJDK. https://t.co/09cuPEqnex
— James Gosling (@errcraft) 2018年11月14日
「無償」かつ「AWS以外でも使えるマルチプラットフォーム」かつ「LTS(Long-Term Support)」つきのOpenJDKをAWSが提供するとのことです。
現在はプレビュー版ですが、対応プラットフォームには、現在、Amazon Linux 2以外に、Microsoft Windows、macOS、Dockerイメージが用意されており、正式リリース時には、UbuntuやRed Hat Enterprise Linuxも対応予定とのこと。
まぁ、もうJavaいれるときは全部これでええやん的な気持ちになる、ごついアナウンスです。
Amazon Corretto きたか…!! ( ゚д゚) ガタッ / ヾ __L| / ̄ ̄ ̄/_ \/ /
Amazon Correttoとは
Javaの生みの親、James Gosling(現在AWS所属)の談話が紹介されいます。
“Amazon has a long and deep history with Java. I’m thrilled to see the work of our internal mission-critical Java team being made available to the rest of the world” — James Gosling
今回発表されたのは、AWSが提供する、無償でマルチプラットフォーム対応の、プロダクションレディーなOpenJDKビルドです。現在はまだプレビュー版です。
Corretto 8の利用(OpenJDK 8互換)
Corretto 8は、2018年11月14日時点、下記4つのプラットフォームにて、プレビュー版が提供されています。MacやWindowsが含まれているのは正直ビビりました。
Downloads for Amazon Corretto 8 - Amazon Corretto 8
- Amazon Linux 2 JDK
- Amazon Linux 2 JRE
- Windows MSI
- Mac PKG
これらのGA(General Availability)は2019年1Q予定。GA時には、UbuntuやRed Hat Enterprise Linuxも含まれる予定となっています。
Corretto 11の利用(OpenJDK 11互換)
Corretto 11は、2018年11月14日時点ではまだ提供されていません。2019年4月までテストが続けられる予定です。
JavaSEとの互換性
互換性の確保のため、Correttoの各リリースでJavaの互換性を確認するTechnology Compatibility Kit(Technology Compatibility Kit)が実行されます。OpenJDKで利用できない機能(Java Flight Recorderなど)を利用している場合を除いて、全てJava SEの代替として利用できます。
今後のサポート予定
少なくとも、以下の時期までの無償配布が予定されています。OpenJDKの新開発拡張機能などもすべて含まれます。
- Corretto 8 → 2023年6月
- Corretto 11 → 2024年6月
また、2019年中には、Amazon Linux2上のデフォルトのOpenJDKに、Correttoを採用予定です。
ソースコードはこちらで公開されています。
プレビュー版をインストールしてみた
そんなわけで、プレビュー版をインストールしてみました。
MacOS版
Downloads for Amazon Corretto 8 - Amazon Corretto 8
こちらから、Mac版のPKGファイルをダウンロードします。サイズは約103MB。
なんか、新鮮なAWS仕様のインストーラーが起動します。
インストール完了後、Runtimeにamazon-correttoの文字が!previewと明記されてますね。
$ java -version openjdk version "1.8.0_192" OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12) OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode)
Docker版
こちらで、Dockerfileが公開されてました。
corretto/corretto-8-docker: Docker-related Corretto
Dockerfileはこんな感じ。いうても、Amazon Linux2にAmazon Correttoのバイナリをインストールしているだけですね。
FROM amazonlinux:2 RUN yes | yum update \ && yes | yum install wget \ && wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm \ && wget https://d3pxv6yz143wms.cloudfront.net/java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm \ && yes | yum remove wget \ && rpm -K java-1.8.0-amazon-corretto-1.8.0_192.b12-1.amzn2.x86_64.rpm \ && rpm -K java-1.8.0-amazon-corretto-devel-1.8.0_192.b12-1.amzn2.x86_64.rpm \ && yes | yum localinstall *.rpm CMD ["/bin/bash"]
ビルドして、Corretto 8が使えます。
$ docker image build -t corretto8:1.0 . $ docker container run -it corretto8:1.0 bash-4.2# java -version openjdk version "1.8.0_192" OpenJDK Runtime Environment (build 1.8.0_192-amazon-corretto-preview-b12) OpenJDK 64-Bit Server VM (build 25.192-b12, mixed mode) bash-4.2#
その他リソース
- Downloads
- Downloads for Amazon Corretto 8 - Amazon Corretto 8
- Change Log
- Change Log for the Amazon Corretto 8 Preview - Amazon Corretto 8
- Document History
- Document History for User Guide - Amazon Corretto 8
界隈の驚きの様子
現在、Correttoハッシュタグが賑わっております。
An important point about #corretto is that it’s the externalization of the OpenJDK distribution that Amazon uses internally. If you’re an Amazon customer, you’re almost certainly using Corretto already
— James Gosling (@errcraft) 2018年11月14日
Yea!! I’m a huge NetBeans fan. I’ve been using NB 10 since the voting candidates started to come out. I’m on VC3 right now and it’s been rock solid for me. NetBeans having become an Apache project is wonderful
— James Gosling (@errcraft) 2018年11月14日
LTS付きのOpen JDKのディストリビューション、Amazon Correttoのアナウンス!ところで文中でコメントしてるJames GoslingてJavaの生みの親なんですが今はAWSにいるんですよ! / Introducing Amazon Corretto, a No-Cost Distribution of OpenJDK with Long-Term Support https://t.co/DtZLhCmeuW
— Keisuke Nishitani (@Keisuke69) 2018年11月14日
James Gosling ツイッタにいたw
— ポジティブな Tori (@toricls) 2018年11月14日
OpenJDKのLTSを行うという話はすでに発表させていただいておりましたが、Amazon Correttoという新サービスとしてプレビューが始まりました!是非お試しくださいませ! James Goslingのコメントが個人的になんか盛り上がりますwhttps://t.co/7Dfle2vtXb
— Akihiro Kuwano (@kuwa_tw) 2018年11月14日
AWSがマルチプラットフォームなOpenJDKを出すことの純粋な驚き
OracleJDKの有償化が発表されてから、「次のJava、一体なににすんねん?」という議論は常に紛糾していました。しばらく前、2018年9月にMicrosoft Azure上での実行目的でJavaのLTSが発表(参考:Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey)されたときは、「やばいな、Microsoft チートやろ」と思ったものですが、その後にAmazon LinuxでのLTS発表。
ここらへんまでは、各パブリッククラウドプラットフォームでのサポートということで、囲い込み的な戦略としてありだなぁと思ってたんですが、ここに来て、AWSが主要なプラットフォームをカバーしたどこでも使えるOpenJDK互換のAmazon Correttoをリリースしたのは、まじでえげつないなと。どっからそんなパワー出てくるんやと。
つい4ヶ月ほど前に顧客から「AWSでJava使いたいんやけど、なんにしたらええんやろ?」と聞かれたときに、「うぅーん、どうしたもんすかねぇ」と答えていたのが嘘のようです。まじでこの界隈、動きが早すぎる。
おそらく、他のプラットフォーマーも追従してくるものと思われますが、まずはJava利用の有力な選択肢として、Amazon Correttoは必ず考慮にいれておいて良いと思います。
それでは、今日はこのへんで。濱田(@hamako9999)でした。